package edu.gatech.ors.mrsim.io.conf;

/**
 * Simple interface to specify classes that can save/load configration with the
 * Configuration class.
 * 
 * @author Andrey Kurenkov
 * 
 */
public interface Configurable {

    /**
     * Getter for the classe's current configuration
     * 
     * @return the current configuration
     */
    public Configuration getConfiguration();

    /**
     * Setter for a new configuration
     * 
     * @param setTo
     *            the new configuration of this class
     */
    public void setConfiguration(Configuration setTo);

    /**
     * Loads values from the currently set configuration, or does nothing if
     * configuration is not set.
     * 
     * @return boolean to indicate if load was fully succesfull
     */
    public boolean loadValuesFromConfiguration();
}
